package com.woniu.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 
 * @TableName direct_orders
 */
@TableName(value ="direct_orders")
@Data
public class DirectOrders implements Serializable {
    /**
     * 订单ID
     */
    @TableId(type = IdType.AUTO)
    private Long orderId;

    /**
     * 填写人ID
     */
    private Long submitterId;

    /**
     * 填写人名称
     */
    private String submitterName;

    /**
     * 申请日期
     */
    private Date applicationDate;

    /**
     * 申请人姓名
     */
    private String applicantName;

    /**
     * 所属地区
     */
    private String region;

    /**
     * 运费付款方式
     */
    private String freightPaymentMethod;

    /**
     * 是否是Design-In项目
     */
    private String isDesignInProject;

    /**
     * 是否申请特价
     */
    private String isSpecialPriceRequested;

    /**
     * 客户ID
     */
    private Long customerId;

    /**
     * 客户类型
     */
    private String customerType;

    /**
     * 是否免付定金
     */
    private String isDepositWaived;

    /**
     * 客户订单号
     */
    private String customerOrderNumber;

    /**
     * 联系电话
     */
    private String contactPhone;

    /**
     * 联系人
     */
    private String contactPerson;

    /**
     * 订货地址
     */
    private String shippingAddress;

    /**
     * 订单类型
     */
    private String orderType;

    /**
     * 订单来源
     */
    private String orderSource;

    /**
     * 样品单号
     */
    private String sampleOrderNumber;

    /**
     * 退货款金额
     */
    private BigDecimal returnAmount;

    /**
     * 客户期望发货日期
     */
    private Date customerExpectedDeliveryDate;

    /**
     * 客户期望收货日期
     */
    private Date customerExpectedReceiptDate;

    /**
     * 预计发货日期
     */
    private Date estimatedDeliveryDate;

    /**
     * 货物重量
     */
    private BigDecimal weight;

    /**
     * 运输方式
     */
    private String shippingMethod;

    /**
     * 附件
     */
    private String attachment;

    /**
     * 申请理由
     */
    private String applicationReason;

    /**
     * 订单状态 ：未发货 0，已发货1，取消2
     */
    private Integer status;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        DirectOrders other = (DirectOrders) that;
        return (this.getOrderId() == null ? other.getOrderId() == null : this.getOrderId().equals(other.getOrderId()))
            && (this.getSubmitterId() == null ? other.getSubmitterId() == null : this.getSubmitterId().equals(other.getSubmitterId()))
            && (this.getSubmitterName() == null ? other.getSubmitterName() == null : this.getSubmitterName().equals(other.getSubmitterName()))
            && (this.getApplicationDate() == null ? other.getApplicationDate() == null : this.getApplicationDate().equals(other.getApplicationDate()))
            && (this.getApplicantName() == null ? other.getApplicantName() == null : this.getApplicantName().equals(other.getApplicantName()))
            && (this.getRegion() == null ? other.getRegion() == null : this.getRegion().equals(other.getRegion()))
            && (this.getFreightPaymentMethod() == null ? other.getFreightPaymentMethod() == null : this.getFreightPaymentMethod().equals(other.getFreightPaymentMethod()))
            && (this.getIsDesignInProject() == null ? other.getIsDesignInProject() == null : this.getIsDesignInProject().equals(other.getIsDesignInProject()))
            && (this.getIsSpecialPriceRequested() == null ? other.getIsSpecialPriceRequested() == null : this.getIsSpecialPriceRequested().equals(other.getIsSpecialPriceRequested()))
            && (this.getCustomerId() == null ? other.getCustomerId() == null : this.getCustomerId().equals(other.getCustomerId()))
            && (this.getCustomerType() == null ? other.getCustomerType() == null : this.getCustomerType().equals(other.getCustomerType()))
            && (this.getIsDepositWaived() == null ? other.getIsDepositWaived() == null : this.getIsDepositWaived().equals(other.getIsDepositWaived()))
            && (this.getCustomerOrderNumber() == null ? other.getCustomerOrderNumber() == null : this.getCustomerOrderNumber().equals(other.getCustomerOrderNumber()))
            && (this.getContactPhone() == null ? other.getContactPhone() == null : this.getContactPhone().equals(other.getContactPhone()))
            && (this.getContactPerson() == null ? other.getContactPerson() == null : this.getContactPerson().equals(other.getContactPerson()))
            && (this.getShippingAddress() == null ? other.getShippingAddress() == null : this.getShippingAddress().equals(other.getShippingAddress()))
            && (this.getOrderType() == null ? other.getOrderType() == null : this.getOrderType().equals(other.getOrderType()))
            && (this.getOrderSource() == null ? other.getOrderSource() == null : this.getOrderSource().equals(other.getOrderSource()))
            && (this.getSampleOrderNumber() == null ? other.getSampleOrderNumber() == null : this.getSampleOrderNumber().equals(other.getSampleOrderNumber()))
            && (this.getReturnAmount() == null ? other.getReturnAmount() == null : this.getReturnAmount().equals(other.getReturnAmount()))
            && (this.getCustomerExpectedDeliveryDate() == null ? other.getCustomerExpectedDeliveryDate() == null : this.getCustomerExpectedDeliveryDate().equals(other.getCustomerExpectedDeliveryDate()))
            && (this.getCustomerExpectedReceiptDate() == null ? other.getCustomerExpectedReceiptDate() == null : this.getCustomerExpectedReceiptDate().equals(other.getCustomerExpectedReceiptDate()))
            && (this.getEstimatedDeliveryDate() == null ? other.getEstimatedDeliveryDate() == null : this.getEstimatedDeliveryDate().equals(other.getEstimatedDeliveryDate()))
            && (this.getWeight() == null ? other.getWeight() == null : this.getWeight().equals(other.getWeight()))
            && (this.getShippingMethod() == null ? other.getShippingMethod() == null : this.getShippingMethod().equals(other.getShippingMethod()))
            && (this.getAttachment() == null ? other.getAttachment() == null : this.getAttachment().equals(other.getAttachment()))
            && (this.getApplicationReason() == null ? other.getApplicationReason() == null : this.getApplicationReason().equals(other.getApplicationReason()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getOrderId() == null) ? 0 : getOrderId().hashCode());
        result = prime * result + ((getSubmitterId() == null) ? 0 : getSubmitterId().hashCode());
        result = prime * result + ((getSubmitterName() == null) ? 0 : getSubmitterName().hashCode());
        result = prime * result + ((getApplicationDate() == null) ? 0 : getApplicationDate().hashCode());
        result = prime * result + ((getApplicantName() == null) ? 0 : getApplicantName().hashCode());
        result = prime * result + ((getRegion() == null) ? 0 : getRegion().hashCode());
        result = prime * result + ((getFreightPaymentMethod() == null) ? 0 : getFreightPaymentMethod().hashCode());
        result = prime * result + ((getIsDesignInProject() == null) ? 0 : getIsDesignInProject().hashCode());
        result = prime * result + ((getIsSpecialPriceRequested() == null) ? 0 : getIsSpecialPriceRequested().hashCode());
        result = prime * result + ((getCustomerId() == null) ? 0 : getCustomerId().hashCode());
        result = prime * result + ((getCustomerType() == null) ? 0 : getCustomerType().hashCode());
        result = prime * result + ((getIsDepositWaived() == null) ? 0 : getIsDepositWaived().hashCode());
        result = prime * result + ((getCustomerOrderNumber() == null) ? 0 : getCustomerOrderNumber().hashCode());
        result = prime * result + ((getContactPhone() == null) ? 0 : getContactPhone().hashCode());
        result = prime * result + ((getContactPerson() == null) ? 0 : getContactPerson().hashCode());
        result = prime * result + ((getShippingAddress() == null) ? 0 : getShippingAddress().hashCode());
        result = prime * result + ((getOrderType() == null) ? 0 : getOrderType().hashCode());
        result = prime * result + ((getOrderSource() == null) ? 0 : getOrderSource().hashCode());
        result = prime * result + ((getSampleOrderNumber() == null) ? 0 : getSampleOrderNumber().hashCode());
        result = prime * result + ((getReturnAmount() == null) ? 0 : getReturnAmount().hashCode());
        result = prime * result + ((getCustomerExpectedDeliveryDate() == null) ? 0 : getCustomerExpectedDeliveryDate().hashCode());
        result = prime * result + ((getCustomerExpectedReceiptDate() == null) ? 0 : getCustomerExpectedReceiptDate().hashCode());
        result = prime * result + ((getEstimatedDeliveryDate() == null) ? 0 : getEstimatedDeliveryDate().hashCode());
        result = prime * result + ((getWeight() == null) ? 0 : getWeight().hashCode());
        result = prime * result + ((getShippingMethod() == null) ? 0 : getShippingMethod().hashCode());
        result = prime * result + ((getAttachment() == null) ? 0 : getAttachment().hashCode());
        result = prime * result + ((getApplicationReason() == null) ? 0 : getApplicationReason().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", orderId=").append(orderId);
        sb.append(", submitterId=").append(submitterId);
        sb.append(", submitterName=").append(submitterName);
        sb.append(", applicationDate=").append(applicationDate);
        sb.append(", applicantName=").append(applicantName);
        sb.append(", region=").append(region);
        sb.append(", freightPaymentMethod=").append(freightPaymentMethod);
        sb.append(", isDesignInProject=").append(isDesignInProject);
        sb.append(", isSpecialPriceRequested=").append(isSpecialPriceRequested);
        sb.append(", customerId=").append(customerId);
        sb.append(", customerType=").append(customerType);
        sb.append(", isDepositWaived=").append(isDepositWaived);
        sb.append(", customerOrderNumber=").append(customerOrderNumber);
        sb.append(", contactPhone=").append(contactPhone);
        sb.append(", contactPerson=").append(contactPerson);
        sb.append(", shippingAddress=").append(shippingAddress);
        sb.append(", orderType=").append(orderType);
        sb.append(", orderSource=").append(orderSource);
        sb.append(", sampleOrderNumber=").append(sampleOrderNumber);
        sb.append(", returnAmount=").append(returnAmount);
        sb.append(", customerExpectedDeliveryDate=").append(customerExpectedDeliveryDate);
        sb.append(", customerExpectedReceiptDate=").append(customerExpectedReceiptDate);
        sb.append(", estimatedDeliveryDate=").append(estimatedDeliveryDate);
        sb.append(", weight=").append(weight);
        sb.append(", shippingMethod=").append(shippingMethod);
        sb.append(", attachment=").append(attachment);
        sb.append(", applicationReason=").append(applicationReason);
        sb.append(", status=").append(status);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}